package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class DbAccessSample2 {

	 public static void main(String[] args) {

		  // バインド変数として指定する引数のチェック
		  if (args.length != 0){
		   System.err.println("引数は0です。");
		   System.exit(-1);
		  }

		  Connection conn = null;
		  PreparedStatement pstm = null;
		  ResultSet rs = null;

		  try {
		   Class.forName("oracle.jdbc.driver.OracleDriver");      // ドライバのロード
		   String jdbcUrl = "jdbc:oracle:thin:@DIO:1521:LUCKYLAND";   // 接続文字列

		   Properties prop = new Properties();
		   prop.put("user", "ARAKI");
		   prop.put("password", "HIROHIKO");
		   prop.put("useUnicode", "true");
		   prop.put("characterEncoding","SHIFT_JIS");
		   // コネクションの取得
		   conn = DriverManager.getConnection(jdbcUrl, prop);
		   // SQLの生成
		   StringBuffer sql = new StringBuffer();
		   sql.append("SELECT ");
		   sql.append("  NO ");
		   sql.append(" ,NAME ");
		   sql.append("FROM ");
		   sql.append("  MSTANDNAME ");

		   // NOの検索条件指定
		   sql.append("WHERE ");
		   sql.append("  1 = ? ");

		   // PreparedStatementの生成
		   pstm = conn.prepareStatement(sql.toString());

		   // 引数で渡された文字列をバインド
		   pstm.setString(1, "1");

		   // SQLを実行
		   rs = pstm.executeQuery();

		   // 結果表示
		   while(rs.next()){
		    System.out.println("NO: " + rs.getString("NO"));
		    System.out.println("NAME: " + rs.getString("NAME"));
		    //System.out.println("PRICE:" + rs.getInt("3"));
		   }
		  } catch (ClassNotFoundException e) {
		   System.err.println("JDBCドライバがロードできません。");
		   e.printStackTrace();
		  } catch (SQLException e) {
		   System.err.println("SQLエラーです。");
		   e.printStackTrace();
		  } finally {
		   try {
		    if(rs != null) rs.close();
		    if(pstm != null) pstm.close();
		    if(conn != null) conn.close();
		   } catch (SQLException e) {
		    System.err.println("クローズに失敗");
		   }
		  }
		 }
		}

